A shared bus is used to provide data communications between a number of traffic sources. Any shared bus will have a finite bandwidth or capacity which must be allocated to the sources in some manner. The grade of service that a particular source receives is a function of how much of the bandwidth that the bus allocates to that source. The grade of service will be good if the bus can guarantee a particular source the capacity to carry any data which it generates. In existing bus architectures it is difficult to change the underlying bus protocol to provide a guaranteed grade of service to a number of sources, particularly when the sources are of various different types. In a system which provides a "fair" allocation of resources, sources of the same type are guaranteed the same grade of service.
Statistical capacity allocation (or statistical multiplexing of bandwidth) can be used to exploit the fact that, statistically speaking, not all the traffic sources will be transmitting data at full capacity all the time. However, in the statistically rare event that the sources are transmitting more traffic than the bus can carry, the behaviour of the bus becomes unpredictable, and it is generally impossible to guarantee a predetermined grade of service to each source.
What is required is a bus capacity allocation method or system which prevents the overload on a shared bus in a way that permits statistical multiplexing of bandwidth, ensures that sources of the same type receive the same bandwidth, and permits an engineerable division of bandwidth between sources of different types. This translates into permitting different sources with different grades of service to co-reside on a shared bus, without concern for bus overload or source starvation. Statistical multiplexing provides a simple approach for sharing a medium. However, this approach does not guarantee a grade of service unless the sources are worst case engineered.
When worst-case engineering is employed, portions of the bandwidth are divided and permanently allocated to various traffic sources. This does not permit statistical multiplexing those portions of bandwidth and is hence very wasteful of bus resources.
A collision detection mechanism (such as used with ethernet for example) is another mechanism to arbitrate access on a shared medium. It however, faces problems with fairness between sources and has the disadvantage that the useable capacity will decrease as the load and number of users increase.